#!/bin/bash

source /etc/profile ##如果第一个参数不为空，则作为工作日期使用

if [ -n "$1" ]
then
  do_date=$1
else
  do_date=`date -d "-1 day" + "%Y%m%d"`
fi

sqoop=/opt/cloudera/parcels/CDH/bin/sqoop
Hive=/opt/cloudera/parcels/CDH/bin/hive

# 编写导入数据通用方法 接收两个参数： 第一个:表名，第二个:查询语句
import_data() {
$sqoop import \
--connect jdbc:mysql://power:3306/power_data \
--username root \
--password 7 \
--target-dir /user/hive/sttement/ods.db/$1/dt=$do_date \
--delete-target-dir \
--query "$2 and  \$CONDITIONS" \
--num-mappers 1 \
--fields-terminated-by ',' \
--null-string '\\N' \
--null-non-string '\\N'
}

# 全量导入结算明细数据
import_clearing_order_item() {
  import_data cleaing_trade_item "select * from clearing_trade_item where weight = 0"
}

# 调用全量导入结算明细数据的方法
import_clearing_order_item

# 注意sqoop导入数据的方式，对于Hive分区表来说需要执行添加分区操作，数据才能被识别到
$Hive -e "alter table ods.ods_clearing_order_item add partition(dt='$do_date');"


